Welcome![Sign In][Sign Up]
Location:
Search - java applet

Search list

[Internet-Network用Java编写HTML文件分析程序

Description:

Java编写HTML文件分析程序

 一、概述

    

    Web服务器的核心是对Html文件中的各标记(Tag)作出正确的分析,一种编程语言的解释程序也是对源文件中的保留字进行分析再做解释的。实际应用中,我们也经常会碰到需要对某一特定类型文件进行要害字分析的情况,比如,需要将某个HTML文件下载并同时下载与之相关的.gif.class等文件,此时就要求对HTML文件中的标记进行分离,找出所需的文件名及目录。在Java出现以前,类似工作需要对文件中的每个字符进行分析,从中找出所需部分,不仅编程量大,且易出错。笔者在近期的项目中利用Java的输入流类StreamTokenizer进行HTML文件的分析,效果较好。在此,我们要实现从已知的Web页面下载HTML文件,对其进行分析后,下载该页面中包含的HTML文件(假如在Frame中)、图像文件和ClassJava Applet)文件。

    

    二、StreamTokenizer

    

    StreamTokenizer即令牌化输入流的作用是将一个输入流中变成令牌流。令牌流中的令牌实体有三类:单词(即多字符令牌)、单字符令牌和空白(包括JavaC/C++中的说明语句)。

    

    StreamTokenizer类的构造器为: StreamTokenizer(InputStream in)

    

    该类有一些公有实例变量:ttypesvalnval ,分别表示令牌类型、当前字符串值和当前数字值。当我们需要取得令牌(即HTML中的标记)之间的字符时,应访问变量sval。而读向下一个令牌的方法是调用nextToken()。方法nextToken()的返回值是int型,共有四种可能的返回:

    

    StreamTokenizer.TT_NUMBER: 表示读到的令牌是数字,数字的值是double型,可以从实例变量nval中读取。

    

    StreamTokenizer.TT_Word: 表示读到的令牌是非数字的单词(其他字符也在其中),单词可以从实例变量sval中读取。

    

    StreamTokenizer.TT_EOL: 表示读到的令牌是行结束符。

    

    假如已读到流的尽头,则nextToken()返回TT_EOF

    

    开始调用nextToken()之前,要设置输入流的语法表,以便使分析器辨识不同的字符。WhitespaceChars(int low, int hi)方法定义没有意义的字符的范围。WordChars(int low, int hi)方法定义构造单词的字符范围。

    

    三、程序实现

    

    1HtmlTokenizer类的实现

    

    对某个令牌流进行分析之前,首先应对该令牌流的语法表进行设置,在本例中,即是让程序分出哪个单词是HTML的标记。下面给出针对我们需要的HTML标记的令牌流类定义,它是StreamTokenizer的子类:

    

    

    import java.io.*;

    import java.lang.String;

    class HtmlTokenizer extends

    StreamTokenizer {

    //定义各标记,这里的标记仅是本例中必须的,

    可根据需要自行扩充

     static int HTML_TEXT=-1;

     static int HTML_UNKNOWN=-2;

     static int HTML_EOF=-3;

     static int HTML_IMAGE=-4;

     static int HTML_FRAME=-5;

     static int HTML_BACKGROUND=-6;

     static int HTML_APPLET=-7;

    

    boolean outsideTag=true; //判定是否在标记之中

    

     //构造器,定义该令牌流的语法表。

     public HtmlTokenizer(BufferedReader r) {

    super(r);

    this.resetSyntax(); //重置语法表

    this.wordChars(0,255); //令牌范围为全部字符

    this.ordinaryChar('< '); //HTML标记两边的分割符

    this.ordinaryChar('>');

     } //end of constrUCtor

    

     public int nextHtml(){

    int token; //令牌

    try{

    switch(token=this.nextToken()){

    case StreamTokenizer.TT_EOF:

    //假如已读到流的尽头,则返回TT_EOF

    return HTML_EOF;

    case '< ': //进入标记字段

    outsideTag=false;

    return nextHtml();

    case '>': //出标记字段

    outsideTag=true;

    return nextHtml();

    case StreamTokenizer.TT_WORD:

    //若当前令牌为单词,判定是哪个标记

    if (allWhite(sval))

     return nextHtml(); //过滤其中空格

    else if(sval.toUpperCase().indexOf("FRAME")

    !=-1 && !outsideTag) //标记FRAME

     return HTML_FRAME;

    else if(sval.toUpperCase().indexOf("IMG")

    !=-1 && !outsideTag) //标记IMG

     return HTML_IMAGE;

    else if(sval.toUpperCase().indexOf("BACKGROUND")

    !=-1 && !outsideTag) //标记BACKGROUND

     return HTML_BACKGROUND;

    else if(sval.toUpperCase().indexOf("APPLET")

    !=-1 && !outsideTag) //标记APPLET

     return HTML_APPLET;

    default:

    System.out.println ("Unknown tag: "+token);

    return HTML_UNKNOWN;

     } //end of case

    }catch(IOException e){

    System.out.println("Error:"+e.getMessage());}

    return HTML_UNKNOWN;

     } //end of nextHtml

    

    protected boolean allWhite(String s){//过滤所有空格

    //实现略

     }// end of allWhite

    

    } //end of class

    

    以上方法在近期项目中测试通过,操作系统为Windows NT4,编程工具使用Inprise Jbuilder3


Platform: | Size: 1066 | Author: tiberxu | Hits:

[Game ProgramJAVA五子棋

Description: JAVA APPLET 五子棋游戏,JAVA编写,JBUILDER编译通过-JAVA APPLET 331 games, JAVA prepared, compiled by JBUILDER
Platform: | Size: 13077 | Author: 胡安 | Hits:

[Other多个经典APPLET源程序

Description: 多个Java Applet源程序,有applet动画、结合AWT以及SWING的操作方法,还有APPLET小游戏,非常经典哦!-multiple Java applet source, applet animation, and the combination of AWT SWING methods of operation, there APPLET small game, very classic!
Platform: | Size: 46133 | Author: 李先生 | Hits:

[JSP/Java在Java Applet中实现动画

Description: 在Java中实现动画有很多种办法,但它们实现的基本原理是一样的,即在屏幕上画出一系列的帧来造成运动的感觉。 我们先构造一个程序的框架,再慢慢扩展,使之功能比较齐备。 -in Java to achieve animation there are many ways, but they realize the basic principle is the same as that on the screen he painted a series of frames to create the feeling of movement. First we constructed a framework of the procedure, then gradually expanded to make it function more readily available.
Platform: | Size: 3600 | Author: 韩方民 | Hits:

[JSP/JavaJava Applet1实例编程

Description: 这是JAVA的APPLET的众多小程序,供大家学习之用-This is JAVA APPLET of many small programs, for your use study
Platform: | Size: 674527 | Author: 陈红 | Hits:

[Windows Developjava实现上传下载

Description: /* * Class: DrawPoker * Description: Java Video Poker Applet. **/ -/ * * Class : DrawPoker * Description : Video Poker Java Applet. ** /
Platform: | Size: 3342 | Author: 曹荣元 | Hits:

[WinSock-NDISjava-testnet

Description: java实现代PC机和以太网转串口设备通讯例子,可以用来测试以太网转串口设备的数据收发情况。 在applet目录下为在java applet中如何和模块通讯的例子,在使用时得首先把index.htm和test.jar下载到模块中,然后在ie中输入http://模块IP地址/index.htm来访问。(目前只有ZNET-200T支持此下载功能) -PC and Ethernet to serial communications equipment example, can be used to test Ethernet switch serial data transceiver situation. The applet directory for the java applet and how communications module example, when used in the first place index.htm and test.jar downloaded to the module, then the input ie http:// module IP address / index.htm to visit. (Currently only ZNET - 200T supports download)
Platform: | Size: 10726 | Author: 东子 | Hits:

[JSP/Javajava-applet_timeCount

Description: java applet 倒计时有声定时器,开始,运行过程中,和结束的时候都会有不同的声音提示。适合java初学者学习。是我们的作业。-audio countdown timer, start process, and will end when there are different voices suggest. Java suitable for beginners to learn. We work.
Platform: | Size: 63429 | Author: 李果 | Hits:

[Other resourcejava-basic

Description: JAVA 技术发展的历程 JAVA 技术的特点 JAVA的三种核心机制 第一个JAVA程序 JAVA设计的注释 关于JDK -JAVA technology JAVA course of the development of Java technology features three core mechanism of a Java applet design of the Notes on JDK
Platform: | Size: 25523 | Author: 阿昌 | Hits:

[Other resourcejava-qhmideleschooldaxue

Description: 清华大学Java课程.讲解JAVA语法,Java语言的发展及相关技术的介绍,Java技术和平台在网络计算及电子商务中的应用介绍;   ■ Java语言的基础知识:Java语言的主要特点,设计思想,Java虚拟机,垃圾回收机制,安全性的保证机制;   ■ Java语言的基本语法规范,包括标识符、关键字、数据类型、表达式和流控制,程序基本结构;   ■ 面向对象技术的基本特点,Java语言的面向对象特性,类和对象的概念,封装性、继承性、多态性,Java语言的特殊属性;Java程序的例外处理机制和方法;   ■ Java语言的输入/输出处理机制和方法,常用的输入/输出方法,输入/输出处理的应用;   ■ Java语言的图形用户界面设计:AWT界面设计的基本方法,常用的组件类库,图形用户界面的事件处理模型和方法,JFC介绍,Swing图形界面设计;   ■ Java Applet程序设计,Applet程序的特点,运行机制,与浏览器的集成,安全机制的使用;   ■ 多线程程序设计,进程和线程的联系和区别,多线程程序设计的一般方法,线程的生命周期,线程状态的控制,多线程的互斥和同步;   ■ Java语言的网络编程技术和应用,Socket程序设计,Client/Server程序设计;
Platform: | Size: 5587136 | Author: fengzheng1920 | Hits:

[JSP/Javajava-calendar

Description: 一个JAVA applet的万年历.直接编译运行MyCalendar即可。外表直观实用。-a Java applet to the calendar. MyCalendar directly translated operation can be. Practical visual appearance.
Platform: | Size: 18456 | Author: runner | Hits:

[JSP/Javaapplet射击小游戏

Description: JAVA-applet射击游戏-Java-applet shooter
Platform: | Size: 32355 | Author: 于喜洋 | Hits:

[Otherapplet到 application

Description: 一个JAVA下applet到 application的转换-a Java applet to the application under the conversion
Platform: | Size: 2363 | Author: 大师傅 | Hits:

[JSP/Javajava applet _barg_raph

Description: 一个java写的柱状图的表示源码-a column written by the source said
Platform: | Size: 33739 | Author: 袁斌 | Hits:

[JSP/Javaapplet

Description: java applet编程,实现对相关图片声音的调用,对applet调用,继承。图形的切换,改变.
Platform: | Size: 947827 | Author: 弘毅 | Hits:

[Game ProgramJava小游戏连连看1.0

Description: 该报告中的程序是使用Java程序编写的连连看小游戏,能够进行休闲放松,锻炼细微观察能力以及思考能力。具有退出功能,再来一局功能,重新排列功能和游戏说明功能,特殊之处本程序加入了音乐功能。该程序分为两个类,主类是class lianliankan,副类是class AudioPlayer,主要运用了工具包 javax.swing, java.awt,java.applet, java.net,java.io和常用组件以及事件监听器等。(The program in the report is the use of Java programming Lianliankan games, leisure relaxation, exercise, subtle observation ability and thinking ability. With the exit function, another function, rearrangement function and game description function, special, this program added music function. The program is divided into two categories, the main category is class Lianliankan, the vice class is class AudioPlayer, the main use of the javax.swing toolkit, java.awt, java.applet, java.net, java.io and common components and event listener etc..)
Platform: | Size: 23552 | Author: lm521 | Hits:

[JSP/Java聊天系统(java+applet)130227

Description: 由java和applet技术一起开发的简单聊天系统(A simple chat system developed by Java and applet Technology)
Platform: | Size: 3423232 | Author: 见朕骑鸡 | Hits:

[OtherJAVA

Description: java基础教程,Java环境及配置,Java基本语法,类和接口,Java Applet,Java图形处理,Java用户界面技术,异常、事件和多线程机制等(Java basic course, Java environment and configuration, Java basic syntax, class and interface, Java Applet, Java graphic processing, Java user interface technology, exception, event and multithreading mechanism.)
Platform: | Size: 5647360 | Author: 天天 | Hits:

[Other164个JAVA小程序源代码_1e069

Description: 164个JAVA小程序源代码 适合JAVA开发的新手学习(164 JAVA applet source code New learning for JAVA development)
Platform: | Size: 394240 | Author: phaNtom。 | Hits:

[DocumentsEclipse-Java书稿6[1][1].8

Description: 本书强调可读性和实用性,丰富鲜活的实例、深入浅出的讲解,帮助读者快速理解相关知识点,有效提升实际开发技能。本书共分11章,主要内容包括分别介绍了Java的背景,Java基本语法,Java的类、对象、包、继承、访问权限、接口等面向对象的知识,Java Applet,Swing组件,Java数据库连接,Java的输入和输出类,多线程机制,Java网络基础等内容。 本书内容丰富,结构完整,通俗易懂,既可以作为高等院校相关专业的教材,也适合自学者和软件开发人员参考使用。(the book of eclipse about java)
Platform: | Size: 3147776 | Author: Aou | Hits:
« 1 2 ... 5 6 7 8 9 1011 12 13 14 15 ... 50 »

CodeBus www.codebus.net